package ema.tpjee.banking.session;


import java.util.Collection;
import java.util.List;

import javax.naming.Context;
import javax.naming.InitialContext;

import session.SessionFacadeRemote;
import entity.Auteur;
import entity.Livre;

/**
 * Simple client of the stateless.
 * 
 * @author Florent Benoit
 */
public final class LibrarySession {

	/**
	 * Classe utilitaire, aucun constructeur public.
	 */
	private LibrarySession() {

	}

	/**
	 * Point d'entree du programme.
	 * 
	 * @param args
	 *            les arguments (non requis)
	 * @throws Exception
	 *             s'il y a une exception.
	 */
	public static void main(final String[] args) throws Exception {

		System.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
		System.setProperty(Context.PROVIDER_URL,"localhost:1099");
		System.setProperty(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");


		//SessionFacadeRemote facadeBean = (SessionFacadeRemote)new InitialContext().lookup("tplibEAR/" + SessionFacadeRemote.class.getName()
	//			+ "/remote");
		
		SessionFacadeRemote sessionfacade = (SessionFacadeRemote)new InitialContext().lookup("tplibEAR/SessionFacade/remote");
		
		List<Auteur> auteurs = sessionfacade.listeDesAuteurs();
		
		
		/*
		
		// Initialisation de la base
		facadeBean.init();

		// Recuperation de la liste des auteurs
		List<Auteur> auteurs = facadeBean.listeDesAuteurs();

		// Liste par auteur des livres ecrits par ceux-ci.
		if (auteurs != null) {
			for (Auteur auteur : auteurs) {
				System.out
						.println("Liste de livres pour l'auteur dont le nom est '"
								+ auteur.getNom() + "' :");
				Collection<Livre> livres = auteur.getLivres();
				if (livres == null) {
					System.out.println("- Aucun livre.");
				} else {
					for (Livre livre : livres) {
						System.out.println("- Livre ayant pour titre '"
								+ livre.getTitre() + "'.");
					}
				}
			}
		} else {
			System.out.println("Aucun auteur.");
		}

		// Recuperation de la liste des livres
		System.out.println("");
		System.out.println("Liste des livres :");
		List<Livre> livres = facadeBean.listeDesLivres();
		if (livres != null) {
			for (Livre livre : livres) {
				System.out.println(" - Livre avec titre '" + livre.getTitre()
						+ "' ayant pour auteur '" + livre.getAuteur().getNom()
						+ "'.");
			}
		}
		*/
	}
}
